package cn.com.bod.fas.common.utils;

import cn.com.bod.fas.common.service.impl.FeignSequenceServiceImpl;

import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.util.UUID;

/**
 * @description 值生成工具类
 * @author zhangchi
 * @date 2019年10月11日 14:35:44
 * @version 1.0.0
 * @Copyright (c) scfhdt
 */
public class ValueGenerationUtil {

    /**
     * @description 产生不重复负整数
     * @author zhangchi
     * @date 2019年9月29日 11:21:33
     * @return java.lang.Long
     */
    public static Integer createIntegerSeq() {
        synchronized (FeignSequenceServiceImpl.class){
            try {
                Thread.sleep(1l);
            } catch (InterruptedException e) {
                Thread.currentThread().interrupt();
            }
            String milli = "" + LocalDateTime.now().toInstant(ZoneOffset.of("+8")).toEpochMilli();
            String value = "-" + milli.substring(milli.length() - 7, milli.length());
            return Integer.valueOf(value);
        }
    }

    /**
     * @description 产生不重复负整数字符串
     * @author zhangchi
     * @date 2019年9月29日 11:21:33
     * @return java.lang.Long
     */
    public static String createStringSeq() {
        synchronized (FeignSequenceServiceImpl.class){
            try {
                Thread.sleep(1l);
            } catch (InterruptedException e) {
                Thread.currentThread().interrupt();
            }
            String milli = "" + LocalDateTime.now().toInstant(ZoneOffset.of("+8")).toEpochMilli();
            return  "-" + milli.substring(milli.length() - 7, milli.length());
        }
    }
    
    /**
     * @description 生成32位uuid
     * @author zhangchi
     * @date 2019年10月11日 14:47:50
     * @param  
     * @return java.lang.String 
     */
    public static String createUUID32() {
        return UUID.randomUUID().toString().replaceAll("-", "");
    }

}
